/*
 * Copyright (C) 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.android.tools.profilers.taskbased.common.constants.strings

import com.android.tools.profilers.taskbased.common.constants.strings.TaskBasedUxStrings.getTaskSubtitle
import com.android.tools.profilers.taskbased.common.constants.strings.TaskBasedUxStrings.getTaskTitle
import com.android.tools.profilers.tasks.ProfilerTaskType

object StringUtils {
  fun getTaskTabTitle(taskType: ProfilerTaskType, isTaskTitleV2Enabled: Boolean): String {
    val taskTitle = getTaskTitle(taskType, isTaskTitleV2Enabled)
    val taskSubtitle = getTaskSubtitle(taskType, isTaskTitleV2Enabled)

    if (taskTitle.isBlank()) {
      return "Task not supported yet"
    }

    if (isTaskTitleV2Enabled) {
      // When isTaskTitleV2Enabled is true, `taskTitle` may be long. Therefore, only the subtitle is used
      // as the tab title if it exists.
      return taskSubtitle.ifBlank { taskTitle }
    }

    var tabTitle: String = taskTitle

    if (taskSubtitle.isNotBlank()) {
      tabTitle += " (${taskSubtitle})"
    }

    return tabTitle
  }
}